package config;

import java.util.HashMap;
import java.util.Map;

/**
 * Klasa przechowuje preferencje
 * 
 */
public class PreferencesMap {
  //Kolekcja (mapa) przechowująca preferencje
  private Map<String, String> prefs = new HashMap<String, String>();
  
  /**
   * Metoda ustawia preferencję
   * @param prefName - nazwa preferencji
   * @param prefValue - wartość preferencji
   */
  public void set(String prefName, String prefValue) {
    prefs.put(prefName, prefValue);
  }

  /**
   * Metoda zwraca wartość wskazanej preferencji lub null, jeżeli taka nie jest zdefiniowana.
   * @param prefName - nazwa preferencji
   * @return - wartość preferencji lub null (jeżeli nie jest ustawiona)
   */
  public String get(String prefName) {
    return prefs.get(prefName);
  }
  
  /**
   * Metoda usuwa wskazaną preferencję
   * @param prefName - nazwa preferencji
   */
  public void unset(String prefName) {
    prefs.remove(prefName);
  }
  
  /**
   * Metoda sprawdza, czy w kolekcji znajduje się wskazana preferencja.
   * @param prefName - nazwa preferencji
   * @return - true jeśli istnieje, false jeśli nie istnieje
   */
  public boolean isSet(String prefName) {
    return prefs.containsKey(prefName);
  }  
  
  /**
   * Metoda zwraca całą mapę
   */
  public Map<String, String> getMap() {
    return prefs;
  }
  
  /**
   * Metoda ustawia przekazaną mapę
   * @param map - mapa
   */
  public void setMap(Map<String, String> map) {
    if (map != null) {
      prefs.clear();
      prefs.putAll(map);
    }
  }
}
